1
ตรรกะที่อิงตามสถานะในกระแสข้อมูล
AI037Lesson 2
00:00

ในภาษา C++ กระแสข้อมูลไม่ใช่เพียงแค่ท่อนเชื่อมต่อเท่านั้น; มันคือ หน่วยงานที่มีสถานะ. การประเมินวัตถุประเภท istream ที่มีลักษณะคล้ายกับ std::cin เป็นเงื่อนไขแบบบูลีน ทำให้โปรแกรมของเราสามารถปรับตัวได้กับจังหวะที่ไม่แน่นอนของการป้อนข้อมูลจากผู้ใช้หรือไฟล์ภายนอก

1. กระแสข้อมูลในฐานะค่าความจริง

เมื่อเราใช้ if (std::cin >> val), ข้อความนี้จะส่งคืน จริง ก็ต่อเมื่อกระแสยังคงมีความถูกต้อง หากมันพบกับ จุดสิ้นสุดไฟล์ (EOF) หรือพบชนิดข้อมูลที่ไม่ถูกต้อง มันจะเปลี่ยนไปสู่สถานะ "ล้มเหลว" และส่งคืน เท็จ.

2. จุดยึดและตัวตรวจจับ

เพื่อติดตามการเปลี่ยนแปลงข้อมูล เราจะกำหนด currVal (จุดยึดสถานะของเรา) และ val (ตัวตรวจจับที่ทำงานอยู่) ตรรกะนี้อาศัยการเปรียบเทียบตัวตรวจจับที่เข้ามา กับจุดยึด เมื่อมีความไม่ตรงกัน จะกระตุ้นการแจ้งเตือนการเปลี่ยนแปลงสถานะ ซึ่งช่วยให้เราประมวลผลข้อมูลที่ไม่มีที่สิ้นสุดด้วยหน่วยความจำขั้นต่ำ

cin >> currValwhile(cin >> val)เท็จจุดสิ้นสุดไฟล์ / ล้มเหลว

3. การอ่านข้อมูลพร้อมกันหลายครั้ง

ภาษา C++ อนุญาตให้เรียงลำดับการอ่านข้อมูลจากกระแส: cin >> i >> j;. ซึ่งอ่านค่าแรกใส่ลงใน i และค่าที่สองใส่ลงใน jซึ่งช่วยให้เราสามารถรับข้อมูลที่ซับซ้อนได้อย่างรวดเร็วและกระชับ

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>